// 二次封装axios


// 1.引入axios
import axios from 'axios'
// 2.创建实例
const request = axios.create({
    // 服务器地址
    baseURL: '/api',
    // 请求超时时间
    timeout: 6000,
    headers: { 'X-Custom-Header': 'foobar' }
});
// 3.添加请求拦截器
request.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 项目中应该是 ：例如：展示loading、判断是否登录
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 4.添加响应拦截器
request.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 项目中应该是 ：例如：loading消失、处理token过期
    if (response.data.code != 200) {
        // 提示错误信息
        if (response.data.code == 401) {
            return Promise.reject('无效会话，请重新登录');
        } else if (response.data.code == 403) {
            return Promise.reject('没有操作权限');
        } else if (response.data.code == 404) {
            return Promise.reject('请求地址不存在');
        } else if (response.data.code == 500) {
            return Promise.reject('服务器错误');
        }
    }
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

// 5. 抛出
export default request;